#ifndef __Condition_H__
#define __Condition_H__

#include "Noncopyable.h"
#include <pthread.h>

namespace wd
{


class MutexLock;//类的前向声明, 不需要加载头文件
                //可以减少头文件依赖的错误出现

class Condition : Noncopyable
{
public:
    Condition(MutexLock & m);
    ~Condition();

    void wait();
    void notify();
    void notifyAll();

private:
    pthread_cond_t _cond;
    MutexLock &    _mutex;//底层实现一个引用依然会占据一个指针的大小
};                        //引用在使用时，无法获取引用本身的地址空间

}//end of namespace wd


#endif

